Adding producer api, tests, and samples