do not use getattr