make this work properly with a data container