base entities refactoring