* split create to create and patch and move to state patch will be refactored further * move setNextState to state transition * move tests * split tests for patch function