added fault based copy code. but still has a bug