refactor to use text fields
methods to serialize / deserialize data

- cleaned up code, including validation logic
- added methods for serializing and deserializing data. as a result, is
now easy to pre-populate fields, and ship them off to ajax endpoints.
Revert "methods to serialize / deserialize data"

This reverts commit 95d767cd39c1b0f0ef1930b77cda8415723ecc19.
Revert 95d767c..f9bc872

This rolls back to commit 95d767cd39c1b0f0ef1930b77cda8415723ecc19.
Revert "methods to serialize / deserialize data"

This reverts commit 95d767cd39c1b0f0ef1930b77cda8415723ecc19.
Revert 95d767c..12224ab

This rolls back to commit 95d767cd39c1b0f0ef1930b77cda8415723ecc19.
Merge branch 'master' into validating_json

replacing master with validating_json
latest version

merged