random insertion implemented