use classes instead objects for controllers + add the AccessController core class