finished basic entity functionality