use attr_readers in APIClient initializer