fix and todo