Initial Code
some little changes
some little changes 2