Gum overlay logic

I did some rebasing and used git push force and I managed to loose the reference to the original pull request #229.

Anyway I've fixed the changes based on the comments in #229 and made a clean pull request.

Sorry for the hassle.

Fixes #137 .
This is confusing:
 - Important: There is no reason to have this function being defined on the constructor and not on the prototype.
 - Nit: Make the function receive the element as an argument and return void.