initial commit with some half working code