Backdrop purchasing almost done - but it needs to be refactored into a class hierarchy