convert tabs to spaces
rename options.embed to options.populate in toJSONObject()
allow toJSONObject() to keep the reference of the related instances without populating the model object