no need for getattr