entity impl