moved logic from system to game_objects, where they belong