seperate run level logic