Seperated algorithms out into their own files