Could we turn this into classes?