toggling ability
wrap to prevent global leaks