minor refractoring + changed the interface to the better v0.0.6