Re-factoring and more deign stuff