add initial SpriteFactory module
refactor Player entity to use SpriteFactory