First end to end (front-end to persistence layer) version.
Type conversion is VERY MESSY, to clean up as soon a possible (DRY principle
100% not applied).