Changing how trait arguments are passed as well as updating docs and specs to match