callback can be undefined
v0.1.3