Added supportState and requireState
state unit tests