use watch instead of element bind