refactor optional