better success error states, but not good enough
merged