improved struct
could be cross plattform