based on onion architecture

basic classes & some tests