refactor + modify params