Merge preston's gc branch into master