updated state handling; works well, form state held as singleton; todo: push to localStorage in order to preserve state between tabs