add local web storage support