small refactor
Support sessionStorage and add destroy() method