implemented states, not sure yet