make 'construcotrs' for instrument objects be functional instead file scope to avoid startup dependency problems