working environment functions