added tests so the dudes can take a crack at implementation