Basic implementation
Allow custom config and fix tests