A good OO design tip is : A class only must do the a only work.
Separate this in server and client components, and separate the admin of licensing objects (But is good using a very basic baseclass for common interface, but encapsulate the logic in separate objects). This give more flexibility.
For example, your admin object is notified for your registration/login system. So, you can send a message for each client, or all client (for example: "Awake man! I close this app!") perform remote admin (run a backup for each client?) or things like it.
If you keep separate the login/registration system, you can (later) add compression/encrypt options and NT/2000/XP/ActiveDirectory integration (see the power?)
Chaou.
The Life is Beautiful!
Programmer in
Delphi, VS.NET
MCP