reimplement formatter
min
removed __fail, fallback, added __exit__