models can now have custom id fields (.read() only atm)