Not perfect yet but very close