split out into individual js files and introduce master password macro