added base entity class and other infra