bug fixed and add off method