abstractController, without magicNumbers