Final version: fully commented and meeting specification