refactor and reengineer original class. separate tests. begin contiguous implementation.