adding high level functionnalities