beginning OO structure