basic collision (still a work in progress)