Revert "refactorization and some bug fixes"

This reverts commit 24e4a6f8b32c06d5a140f371e686fad18feaf42c.
Revert "Delete todo"

This reverts commit f1fe383b5f84a323abdc9e55c7153de484dd0d70.
Revert "Create todo"

This reverts commit e2e84f0891f1625207f12626f52225ba57b1016f.