Prop/refactor

I refactored the code to make it more modular. It certainly needs improvements, but I think this way it'll become easier to implement pluggable features.

Some changes:
- Bubble and Utils has now its own object
- More legible code (IMHO)
- DRY and SRP (needs refactor)

I believe I've tested all features. Let me know if some error occurs, or your opinion in case you don't like the changes.

Thanks