initial commit
implementation and example added