Added abstract controller; changed Module class