Question about translation of Auto Server from D2 to D3

I have an automation server App in Delphi 2 that I want to upgrade to
Delphi 3.

In that App automation server, in Unit1 I had the main server something
like:

{---------------------------------------------------------}
TMainServer = class(TAutoObject)
private
        {some private declarations}
automated
        function Get_A_AutoObject: Variant;
        function Get_B_AutoObject: Variant;
        function Get_C_AutoObject: Variant;
        function Get_D_AutoObject: Variant;
        function Get_E_AutoObject: Variant;
end;
{---------------------------------------------------------}

and the registration of the main (and only) server is done in this unit1
also.

In Unit2 I implemented the necesary code to create some others Auto
Objects.

something like:

TA_AutoObject = class(TAutoObject)
...
end;
TB_AutoObject = class(TAutoObject)
...
end;
... etc.

This AutoObjects are instantiated by Main server and returned to the
client, this way:

{-----------------------------}
' Here the client create the main server
Set MainServer = CreateObject("Emaps.Application")

'and here the client get the secondary object

Set A_Object = MainServer.Get_A_AutoObject
Set B_Object = MainServer.Get_B_AutoObject
Set C_Object = MainServer.Get_C_AutoObject
Set D_Object = MainServer.Get_D_AutoObject
{-----------------------------}

The questions are :

In Delphi 2 only TMainServer (Unit1) need to be registered and no the other

auto-objects (Unit2) instantiated by TMainServer. In Delphi 3 it is
necessary to register in the Windows System (registry) all COM objects thru
interfaces ? or can I derive this other auto objects the simple way?

TA_AutoObject = class(TAutoObject)
...
end;
TB_AutoObject = class(TAutoObject)
...
end;
... etc.

Can I still create Unit2 and define there the secondary COM objects that
are
instantiated by TMainServer and returned to the client ?

Really, I don't know what is the best (or the correct) approach in Delphi
3.

Thanks for your help

LuisMore