fix frame padding, refactor native tap