Refine some requirements and add some TODOs