refactored to explicit routes