fix: generate functions