Should protect with hasattr("_is_reference")?