Do we really not want to be extracting the touch here? I don't see where that's been done inside onMouseDown… It has to happen somewhere, right? (I'm making these comments as I read through, so maybe I just haven't found where it happens yet.)