directive factory
controller inheritance