refactor declaration
refactor declaration