refactor source view