Better exam workflow

Fixing the public controller to make it more manageable and extendible.