separation of variables