Added testing! (finally) Also cleaned up pieces __init__s and made use of builtin __repr__ method.