Menu interactions

Updates since last pull request
If we don't have this already we should probably document all the values that we're hard coding somewhere in the code along with what they actually mean (how the behavior differs between the different types of step types, etc).