First version, with examples