Data access layer

Done initial work on the Domain and Data access layer.