working on splitting into four domains