wrestling a little with the Interfaces