Try it step by step, first get the collision working then add the variants to it once it is working correctly. You should be testing each piece of functionality as you add them, instead of adding a bunch and then testing, it makes it hard to see what broke it.