cleanup + all unit tests working