first indipendent implementation
1.1