add basic framework
refactor router
update input