Updated Model with assertions and gear constraints