Assessment refactoring and question block in answer

See commit messages for specific steps taken
Thanks for adding unit tests! This is great.