전체적인 boundary check 부분 추가 및 몇 가지 기능 추가