done should return null as first argument on success