implemented exp
implemented exp