added functionalities: adding, editing, removing, sorting