add logic for adding, showing, removing, and searching