Updated, please review it, thanks!