Trying to abstract away from game-engine purposes.