Use canvas, position text better