Complete class and define tests

Signed-off-by: Ken Barber <ken@bob.sh>