adding TORUS, fixing some bad design decisions