[0.2.0] restructure, write tests, deprecate circular dependencies

Signed-off-by: Eli Skeggs <eskeggs@globesherpa.com>