The above block is the real meat of this pull request. The rest is just stuff from @macawm's fork(s). 

This leaks though, right? It retains `tapTargetPath` via `CGPathRetain` but never releases it, only adding new ones upon each tap?