implement proper collission checking