first version

copy some parts from grunt-wait-async