separate the tornado ioloop to avoid rewriting an interface