Initial commit. Todo: More test, more doc