Decouple layers

Data, Domain and UI layers are totally decoupled now.