Question search refactor + fixes #60
Code cleanup
Merge with master
Merge branch 'master' into mr595