Refactoring

I present you a pretty huge pull-request, but you already knew that ;) for those, not knowing what's going on here: I pretty much refactored the whole thing: extracted strings, modules and classes. The plugin should work as before. I tried to preserve the behaviour.