fine tuned collision method to handle rebound angles and speed transfer