Refactored, separating each class into its own file
Updated for mcmc refactor