better collision still not perfect