Updated with project-euler