added abstract controller to handle errors
modified upload page