implement sample provider