refactoring common block module