add some tests and examples