Implement contract for distribute