adds binding and validation, tweaks a few things