todo changed, some minor things added