collect once at start