Add explanation of code
Separate alternative methods into separate file and rename files