wraps everything in a IIFE, so "use strict" doesnt fuck up other JS
add stuff to prototype