Desirable interface and a bit of implementation