fleshed out the source tree; code to follow