added tests but some still fail