add uml stuff and doc improve