Support/use self everywhere

This came out from a comment in #1094 
This PR makes all the code use `self` as a keyword for the properly scoped `this`
review: @mikeal @nylen @FredKSchott ?
wait, is this actually broken right now? or is the `this` we're accessing in this function suppose to be bound in a different object this gets fired on?