some thm logic