add more tests; improve coverage