fixed some more routing and splitted controller logic