#5 refactor is going on