magic methods no longer final, few other minor updates to return values, some clean up