add processing logics