--TODO: optimize Result object