fleshing out struct definitions