constructor pattern implementation completed