made threshold optional, unveil can now be called only with a callback