pull caption hovering feature into own file so we can include it separately etc