first pass of #115; interface added