make program.steps consistent with each other
remove watches from controller

Angular JS - you probably shouldn't use $watch in your controllers
http://www.benlesh.com/2013/10/title.html

The problem for me is that the watchers on puzzleConf are firing when I
internally update puzzleConf. The update handlers should only fire when
the user changes the puzzleConf, and not anywhere else. It's better to
do this explicitly
fix controller running twice!