finish most functionality of werobot.client