we should use a PORO instead of a struct