added chaining in on and off methods