refactor - too much