Add distribution options to roll script

Also completely refactor script to use objects