fleshed out classes