update, added lots of new api