Committed to keep updated. Still needs work.
TODO:
Ordering
Fix minus then bracket problem.