Initial freerouter pass (needs cleanup)