modified design a little