implement selectable TextArea and other UI improve