I would wait until after #137 is merged and Travis finishes the build before you attempt to merge this into master - weird things seems to happen when builds overlap for ggExtra.
LGTM (at a later point I might care to revisit the logic inside the public build() method to try to make some more use of it being in an object oriented world)