better structure, makes all symbolic operators optional now