update components, fix a stupid bug