todo cleanup + more