Refactory on Distribute methods