docs: explain interfaces