-3 levels version with simple main