fleshed out main