added tests, some still trying to make better/work