test passing and need to fix and clean