added interface for choosing distribution