Added tests and usage examples