first refactoring to new object model
redesigned sprite code