add more logics