Cleaned up the language stuffs, added comments