Simplified API, improved version.
Added better mutability to API as well as feasible implementations.
Added mutability and listener test.
Fixed bugs.