marca de agua de entrada de texto mediante enlace personalizadoHandler

He estado tratando de crear un administrador de enlace personalizado que puedo usar para dar un comportamiento de marca de agua a los campos de entrada de texto.

Porwatermark Quiero decir: para agregar valores predeterminados a los campos de texto que se eliminan en el enfoque y se reemplazan en desenfoque si el campo de texto todavía está vacío

He logrado que esto funcione como se muestra en este jsfiddle:http://jsfiddle.net/rpallas/nvxuw/

Tengo 3 preguntas sobre esta solución:

¿Hay alguna forma de cambiarlo para que solo tenga que declarar el valor de marca de agua una vez? Actualmente tengo que colocarlo en el lugar donde declaro el enlace y también tengo que inicializar el observable con el mismo valor en viewModel, ya que de lo contrario no tendrá un valor inicial.¿Hay una mejor manera de llegar al observable subyacente al que está vinculado el valor de los elementos? Actualmente lo estoy agarrando usando allBindingsAccessor, pero esto me parece mal. Originalmente solo estaba configurando el valor usando jQuery$(element).val('') pero esto también se sintió mal. ¿Cuál es mejor, o hay una mejor manera?¿Alguien tiene o sabe de una solución existente para este problema? ¿Estoy reinventando la rueda?