Implementation of the 4 first requirements