Basic Implementation, cleanup