C# factory three-tier structure supermarket invoicing (Sql2000)