refactor :)