Refactoring GameComponent