use ok idiom
fix string method
giant terrible refactor