Model operations are now like UI, they can only be performed under certain states