Separating functionality as suggested by Jason