added externally visible functions