As we have too many `types of states`, I'll need to create a class for this, after merging your commit, something like in #50