mostly done. errors are minor and not very noticable