added a bunch more stuff