added: routing + code refactor