passing in a unit length vector wouldn't always compute unit length vectors because the epsilon tested was too small.