Got collision detection *mostly* working. There appears to be some edge cases (steps) where some odd behavior is happening.