More state methods

factored code apart for readability - no functional changes