fix the design flaws