first commit. in the next few days I will translate the comments into English