Moved Values type into typedefs; implemented alternate implementation based on transition callbacks instead of StateManager