refactored sprite controllers