adding more documentation and examples