Version 12

With Aaron's changes and a few comments added