learn distribution methods