tags are now optional, and it now supports descriptions