- abstract controller , injects dependency