added a lot more methods
added a bunch more stuff