refactor, it's possible now to continue learning