Why does this need to be transient? also use camelcase for naming (totalCores)