complete first attempt at routing