functional style initial commit