Factorize backing store logic, add retina support, upgrade UI