some design improvments