Proper collision handling, need refactor badly