Uses reference instead of pointer