impl more appropriate ball collision handling