todos
write_through_bz2 describes it better
Don't need call_or_self in Object