Refactored to include md5 class