fleshing out basic classes