rewrite from haroopad*i386. and follow github flavored markdown