Re-worked exception handling and reorganized controllers