true objective computation. still has bugs