Fix required:false bug.
Rewrite to make it more generic, i.e., doesn't have to be used with Ractive.