collision concept, needs refactor