implement entity functionality