basic structure -> domain +services