add toggle state function