deeper, type-aware obj property setting