added a few more methods and some selfs