reduced more repetition by stuffing base_setup() with more code