some parts are now parallel, maybe add gpu?