working but need clean up