Closes #25. Co-authored-by: Max Erenberg <> Reviewed-on: #29 Co-authored-by: Max Erenberg <merenber@csclub.uwaterloo.ca> Co-committed-by: Max Erenberg <merenber@csclub.uwaterloo.ca>