Assessment refactoring and question block in answer

See commit messages for specific steps taken
It would be good to double-check how the server-side stepping works. This might be the reason of the if self.step > step, which could be a bug.