*add getDouble from protocol & refactor touchUser