refactorings and stuffs