Updated with better docs and examples.