Added the first version of the code along with its tests and an updated documentation