updated for general use