added getNormal and attempted collision resolution