Update this to the implementation in button using _off/_on, at least after improving that one.