pass down logic