Resolves #131
This is the first MR to replace !125, and contains everything except the new python stuff -- which is part two.