big update, fix many problems.