first functional version (edit, add, and remove)