Refactored to build on 2.11.