first commit of the new implementation