updated with more cleanup