Added the initial implementation and examples