Revisited datatypes. Added some whitespace for better readability and refactored the comments.