implement chained refs