slight refactor
First tests pass
hacky registration, but tests working. need to source a way to ensure static definitions in implementation files.
figured out the dissapearing static member. hacked semirings.cpp to force its compilation.