Structure changed, with bugs fixed and improvement.