revise by Luigi, mostly...
my revision again