Rethink generators and constraints. Add Modal.Time module