Added multiple output options
Fixed merge conflicts, added support for multiple different output methods, moved around the static variables at the top of the file so it is easier for users to find and tweak the values