add Element.toggle and stop, cancel can be functions
improve jsdocs
improve test coverage, fix bugs