Allow returning NULL in BlockFunction
Lazily create touch objects; up limit to 16; fix #189