Initial working implementation + examples