collision logic clean