improved hasOne / belongsTo relation