done callback could be triggered when no function added