Refactoring: moved preloading logic to related class
Refacrong: moved prejoiner into sperated class