repo router
some cleanup
use router