before file separation refactor