compute logic done