Added validation for using the depends on with and without name
Rework api without exceptions, have a default depends.on, and depends.on by name