improve: generate vs project