added must compile functions