Refactor 2. [FINAL]