fleshing out generation funcs...