Design and bug Fixes