split controllers into a separate module