add rest functions