added some more tests; needs to be optimized