add tags
add update
update print()