fleshed out Interface class