initial entity implementation