Refactored: tried to group classes in different namespaces (WIP)