improving the design a bit more