think it in a normal way first, then I try to optimize it