일반적인것 구현