#add - generate unique id
#update - history