Changed name of API, added a little more comments. Hope that won't bother you~