Splitting functionality into two separate classes.