rename source function to drain