Separate all methods into 2 parts: memory hungry and CPU hungry, then use them according to the user PC specs.