added different line & plane reflection functions to remove ambiguity