some solution of problems,maybe ugly =.=