more tests, some semblance of function, still need to do more