moved all logic to object
distributed model classes