so close
FInally done just need to refactor