refactor generator and add human method