Nested DAG as a Method (Method role)

I'll keep pushing to this pull request over time.  I think it is just clearer to start fresh with this so the first commit does that.  
I don't think `validate_pos` is used in this module.