1. Add CartesianProductEJA. 2. Check the axioms in the constructor when check != False? 3. Add references and start citing them. 4. Implement the octonion simple EJA. 5. Factor out the unit-norm basis (and operator symmetry) tests once all of the algebras pass. 6. Refactor the current ungodly fast charpoly hack (relies on the theory to ensure that the charpolys are equal.) 7. If we factor out a "matrix algebra" class, then it would make sense to replace the custom embedding/unembedding functions with static _real_embedding() and _real_unembedding() methods.