Merge with Ryan Varley's branch.