implemented two-way binding. unbind not yet implemented