Chris refactored + 2 patches