first commit with all the code ready to be used