my own version of setup