why __getobj__ instead of self?