seperating concerns, making things more modular