Interface overkill; rigorous readonly usage