refactor and development