improve design a bit