add touch support
pure render mixin for better perf