more cleanup, pulling apart methods