some docs and some basic interfaces