revised POGO to use @Canonical