use data-offsetY and some cleanup