revised up to TODO marker