Refactoring Session #1.

This is an incomplete work. It seems like a big refactor & I think it requires approval for the idea before proceeding.

Please, take your time & review this carefully (but don't merge it).
In this implementation I tried a different approach. Let's call it Dynamic Resource Keys.
So, I don't have constants or fixed names, like current approach, but I've a convention to follow.
This approach is more compact, as you'll see, but you'll lose the benefit of using fixed/constant resource keys.

Let me know what do u think & if you'd like to continue this approach or to keep the current approach.