Switch result page interface to use composition over inheritance