updated to use o.route