it is strange we are exporting so many functions here. Probably we need a refactor