forgot I have to raise AttributeError myself, otherwise it silently returns None for non-existent attributes
forgot I have to raise AttributeError myself, otherwise it silently returns None for non-existent attributes

teepark/greenhouse