Less reflection, more interfaces