added ability to pass in label strategy func