add router & separate models