with collision handling