complete three methods