route restructure, dry up controller
fix conflict