fleshed out the requirements