stuff that has been somewhat tested, working on sdk