Clean up and add explanation of boyer-moore