entity constructor