design almost completeish