rearrange / refactoring