reducing complexity
repo implementation
update to fit new model