Rethink the API for more flexibility and speed

Now you can sequence anything but validation will take place only when
.build() is called.