Feature #677 widget cipher (rebase2)

rebased continuation of #695