refactoring
hacky but working breakdowns