Refactoring

@Termina1 rvw pls