update to be easy to read
add TODO