Refactor code

Fixes #19.
> declare vars inside their closures; while popular JS book authors advise you against this, it makes code more readable and easier to refactor (you don't have to worry about leftover variables when moving blocks of code).

First time I hear about this :), even if you don't like putting your variables on top of the function (which I mentioned is good for the coffee mindset and for a data overview inside a method), you can still declare the `label` once next to `i` and `l`