added complete functions