added a new constructor and UID field