refactor and documentation
punch in my name