Added normal_vector as an argument