Some realy mess in here need to finish !!!