add touch factory