:value does not seem to offer any kind of two-way binding. Maybe shouldn't be a map?