validation / saving logic, (still buggy) demo