I don't want to say more about this commit. It cantains many changes and takes me a lot of time.