P.S. Any and all criticisms are welcome, please feel free to comment.