added comments and TODO