Renamed prototype into DomainModel. Restructured classes. Removed interfaces.