refactor it works :)