several commented parts removed