implementation of otp