Initialization
almost done with first version.
moved