[u] Refactor improving the interfaces and classes reusability.