Basic data abstraction/model layer. Updated validation, basic unit tests started