#11 Fix some design flaws