Refactored web controllers (phase 1)