+1 on the interface and different impl