revised and updated todo