first pass at router