Best preferred layer handling so that multiple types can be pushed and cover all options for future caching
Decoupled DAG design