mc init function takes init_args instead

makes init more extensible as well as allows a cleaner method for using
calculated defaults
removed backend

causes excessive erroring in tests, as well as necessity to keep things
separate while under initial heavy dev