improving the architecture