initial commit and first implementation