Fixed some design flaws