Updated with recent changes including Dropdown support, better support
for Checkboxes, future support for fancy text, better input handling;