add: really basic implementation from columbia copied over... lots of fixes needed