Wip bitly

this is quite a bit of logic to be in the controller, could this be pushed down into the model?