drums are sorta working, some refactoring