No need to slice, save some allocations
Refactor version check into its own method