more impl, tests and coverage
more impl, tests and coverage