separated the setup into separate defs