been factoring a little further
still need to finish the abstract stuff
implemented romains new algo and started a little on optimizations for abstraction