simplified add() with cross-multiply, added absValue() and negate()
added more tests