moved tools into separate classes