fix warnings
use bonafide struct
track size