TODO: add clipboard listener