How would you feel about 
    return self.new(directives)

Especially with new, I like to make the receiver explicit.