working but needs clean up