Author: Ferdinando Maurici  --------------------------------------------------------------------------------