bubble, collision fixes, refactor