major overhaul. renaming; new API; now base class for extension; updated demo