Add abstraction in inheritance to support hook methods [SERINA-3]

This allows each controller type to have its own special setup actions