implemented incomplete passes