use state
refactor, test coverage