shifted shifty type-checking to typeService; router routes accept final parameter to prevent generating get query string