Added file name param and more. See description.

-Fixed some minor issues/details
-Can actually compile now (not just a bunch of random snippets)
-Added more text & explanation to a few parts