simplify the architecture