readonly interface looks okay