better with errors
pre validation ui logic in place