[major] Make private properties readable on the spark
[minor] Re-use the extend method of `predefine`