some carrierwave stuff, I have no idea whats going on