add new api interface like sinatra