Updated with cleaned-up routing