refactor needed bad