preliminary class setup