Divide namespaces
Refactor
Implement functional inheritance pattern