port revise from importnew.com