initial commit SOLID