re-did dataholder based on maps instead of dll