cleaned up code and documentation, added handling for BMP and HTTP 30X following (and https), implemented a decision tree to handle different sizes of images appropriately