made improvement
made improvement
refactor and merge