I spent a lot of time reworking the API and implementing a state machine. State machines allow the client to segment the flow of their game more naturally and manage resources easier. All code must be put into an Infinity::State subclass in the future.