Refactor/reference lib

#67 의 일환으로 현재 레퍼런스 관련 필요한 기능만 모듈, 클래스로 빼봤습니다.

순순히 상속으로 구현하려다가 extend를 써봤는데 뭔가 이렇게 쓰는게 아닌 것 같습니다..
뭔가 깔끔하지 않고 나름대로 dsl을 만들어보고자 하는 욕심이 있었는데 그냥 상속으로 구현하는 것이 나을까요 ㅋ큐ㅠㅠ