added exponential method
fix merge conflict