refactor expansion parsers
input states may include other ones