added class heirarchy and controller inheritance