a note for future me to investigate
getting indenting of this script consistent (tabs are terrible)
extensions namespaces are annoying