Separated data from presentation and systems to facilitate unit testing; added filtering of form parameters; do not throw exceptions upon error - use a friendly text description