added enable/disable methods & made adaptive - see issue #1