add various functions