first working commit: non-iterative, no final variables, no helper methods, calculations need checking