- Changed return value of factory methods to id in order to better support subclassing.
Merge branch 'v1.2'