Initial commit - is functional but not ideal and kind of hacky: could use some tweaks and improvements