Implement most functionnalities