some more collision detection... this whole thing just is not holding up with more than 500 entities in any context :(