complete rewrite without Content*, PropertySheet* types and with Kmett's lens package.