initial commit , basic working version