Added clone method
Added public id generation on persist
Removed non-doctrine remix
Updated remix method to use __clone
Moved the public id generation to the listener