initial commit
finish first approach