TODO ---- * handle explicit vs. implicit interfaces